<?php

namespace Home\Controller;

class LoginController extends HomeController
{
    public function upregister($username,$email, $password ,$code)
    {

        $emailCode = M('EmailCode')->where(array(
            'email' => $email
        ))->order('id desc')->find();



        if (!$emailCode) {
            $this->ajaxError('请发送验证码');
        }


        //$emailcode = file_get_contents('Public/code/' .$email.'.txt');

//        if (!$emailcode) {
//            $this->ajaxError('请发送验证码');
//        }

        //$msg = explode(':time',$emailcode);

        if (time() > $emailCode['addtime'] + 60){
            $this->ajaxError('您的验证码过期，请重新输入验证码');
        }

        if ($emailCode['email'] . $emailCode['code'] != $email.$code) {
            $this->ajaxError('您输入的验证码有误');
        }

        if (!check($email, 'email')) {
            $this->ajaxError('手机号格式错误');
        }

        if (!check($password, 'password')) {
            $this->ajaxError('登录密码格式错误');
        }


        $user = M('User')->where(array(
            'email' => $email
        ))->find();
        if ($user) {
            $this->ajaxError('邮箱已存在');
        }

        if (M('User')->where(array(
            'username' => $username
        ))->find()){
            $this->ajaxError('用户名已经存在');
        }

        $mo = M();
        $mo->execute('set autocommit=0');
        $mo->execute('lock tables trade_user write , trade_user_coin write , trade_user_credit write');
        $rs = array();
        $rs[] = $mo->table('trade_user')->add(array(
            'username' => $username,
            'email' => $email,
            'password' => md5($password),
            'tpwdsetting' => 1,
            'addip' => get_client_ip(),
            'addr' => get_city_ip(),
            'addtime' => time(),
            'email_is_ok' => 1,
            'status' => 1,
        ));

        $rs[] = $mo->table('trade_user_coin')->add(array(
            'userid' => $rs[0]
        ));

        $rs[] = $mo->table('trade_user_credit')->add(array(
            'userid' => $rs[0]
        ));

        if (check_arr($rs)) {
            $mo->execute('commit');
            $mo->execute('unlock tables');
            $this->ajaxSuccess('注册成功!');
        } else {
            $mo->execute('rollback');
            $this->ajaxError('注册失败');
        }
    }


    public function submit($email, $password)
    {
        if (!check($email,'email')){
            $this->ajaxError('用户名格式错误');
        }

        if (!check($password, 'password')) {
            $this->ajaxError('登录密码格式错误');
        }

        $u = M('User')->where(array(
            'email' => $email
        ))->find();
        if (!$u) {
            $this->ajaxError('帐号密码不匹配，请重新输入!');
        }
        if ($email != $u['email']) {
            $this->ajaxError('用户名错误');
        }

        $salt = rand(0000,9999);

        $token = md5($u['id'] . time() . md5($salt));

        $tokenrs = M('User')->where(array(
            'id' => $u['id']
        ))->save(array(
            'endtime' => time(),
            'salt' => $salt,
            'token' => $token,
            'lasttime' => time(),
        ));

        if(!$tokenrs){
            $this->ajaxError('存入token失败');
        }

        // 判断用户帐号状态
        $user = M('User')->where(array(
            'id' => $u['id']
        ))->find();

        $mo = M();
        $mo->execute('set autocommit=0');
        $mo->execute('lock tables trade_user write , trade_user_log write ');
        $rs = array();
        $rs[] = $mo->table('trade_user')
            ->where(array(
                'id' => $user['id']
            ))
            ->setInc('logins', 1);
        $rs[] = $mo->table('trade_user_log')->add(array(
            'userid' => $user['id'],
            'type' => 'WEB',
            'remark' => 'Mobile',
            'addtime' => time(),
            'addip' => get_client_ip(),
            'addr' => get_city_ip(),
            'status' => 1
        ));

        if (check_arr($rs)) {
            $mo->execute('commit');
            $mo->execute('unlock tables');

            $data = array(
                'type' => 1,
                'msg' => '登陆成功',
                'userid' => $user['id'],
                'username' => $user['username'],
                'token' => $token
            );
            $this->ajaxReturn($data,'JSON');
        } else {
            $this->ajaxError('登录失败');
        }
    }


    //设置交易密码
    public function setPaypasswordUp($paypassword, $repaypassword, $login_password)
    {
        if (!userid()) {
            $this->ajaxError('请登录!');
        }

        if (!check($paypassword, 'password')) {
            $this->ajaxError('交易密码格式错误');
        }

        if ($paypassword != $repaypassword) {
            $this->ajaxError('两次密码不一致，请重新输入');
        }

        $user = M('User')->where(array(
            'id' => userid()
        ))->find();

        if ($user['password'] != md5($login_password)) {
            $this->ajaxError('登录密码错误');
        }

        if ($user['password'] == md5($paypassword)) {
            $this->ajaxError('交易密码不能和登录密码一样');
        }

        if (M('User')->where(array(
            'id' => userid()
        ))->save(array(
            'paypassword' => md5($paypassword)
        ))
        ) {
            $this->ajaxSuccess('操作成功');
        } else {
            $this->ajaxError('操作失败');
        }
    }

    //设置实名认证
    public function setTruenameUp()
    {
        if (empty($_POST['firstName'])) {
            $this->ajaxError('请填写名!');
        }

        if (empty($_POST['lastName'])) {
            $this->ajaxError('请填写姓!');
        }

        if (empty($_POST['idType'])) {
            $this->ajaxError('请选择证件类型!');
        }

        if (empty($_POST['idCard'])) {
            $this->ajaxError('请填写证件号码!');
        }

        if (empty($_POST['nation'])) {
            $this->ajaxError('请选择国籍!');
        }

        if (M('User')->where(array(
            'id' => userid()
        ))->save(array(
            'truename' => $_POST['lastName'] . $_POST['firstName'],
            'idcard' => $_POST['idCard'],
            'nation' => $_POST['nation'],
            'id_type' => $_POST['idType']
        ))
        ) {
            $this->ajaxSuccess('操作成功');
        } else {
            $this->ajaxError('操作失败');
        }
    }

    public function loginout()
    {
        session(null);
        $this->ajaxSuccess('退出登陆成功');
    }

    //登陆
//    public function login($username, $password, $areanum)
//    {
////        if (!check($username,'email')){
////            $this->ajaxError('用户名格式错误');
////        }
//
//        if (!check($password, 'password')) {
//            $this->ajaxError('登录密码格式错误');
//        }
//
//        $u = M('User')->where(array(
//            'username' => $username
//        ))->find();
//        if (!$u) {
//            $this->ajaxError('帐号密码不匹配，请重新输入!');
//        }
//        if ($username != $u['username']) {
//            $this->ajaxError('用户名错误');
//        }
//
//        $salt = rand(0000,9999);
//
//        $token = M('User')->where(array(
//            'id' => $u['id']
//        ))->save(array(
//            'endtime' => time(),
//            'salt' => $salt,
//            'token' => md5($u['id'] . time() . md5($salt)),
//            'lasttime' => time(),
//        ));
//
//        if(!$token){
//            $this->ajaxError('存入token失败');
//        }
//
//        //$login_num = D('User')->get_login_num($u['id']);
////        if ($login_num <= 0) {
////            if ($u['status'] != 1) {
////                D('User')->update_user_status($u['id']); // 解冻
////            }
////        }
////        if ($login_num >= 5) {
////            D('User')->update_user_status($u['id'], 0); // 冻结
////        }
//
//        // 判断用户帐号状态
//        $user = M('User')->where(array(
//            'id' => $u['id']
//        ))->find();
////        if ($user['status'] != 1) {
////            $this->ajaxError('账户锁定，将在1个小时后自动解锁!');
////        }
////
////        if (md5($password) != $user['password']) {
////            D('User')->add_login_log($user['id'], 0); // 添加登录日志
////            $this->ajaxError('登录密码错误' . '还有' . (5 - $login_num) . '次机会');
////        }
//
//        $mo = M();
//        $mo->execute('set autocommit=0');
//        $mo->execute('lock tables trade_user write , trade_user_log write ');
//        $rs = array();
//        $rs[] = $mo->table('trade_user')
//            ->where(array(
//                'id' => $user['id']
//            ))
//            ->setInc('logins', 1);
//        $rs[] = $mo->table('trade_user_log')->add(array(
//            'userid' => $user['id'],
//            'type' => 'WEB',
//            'remark' => 'Mobile',
//            'addtime' => time(),
//            'addip' => get_client_ip(),
//            'addr' => get_city_ip(),
//            'status' => 1
//        ));
//
//        if (check_arr($rs)) {
//            $mo->execute('commit');
//            $mo->execute('unlock tables');
//
//            //session('userId', $user['id']);
//            //session('token' , md5($user['id'] . $user['username']));
//            //session('userId', 29);
//            //session('userName', $user['username']);
//            //session('trueName', $user['truename']);
//            if (!$user['paypassword']) {
//                session('regpaypassword', $rs[0]);
//                session('reguserId', $user['id']);
//            }
//
//            if (!$user['truename']) {
//                session('regtruename', $rs[0]);
//                session('reguserId', $user['id']);
//            }
//
//            $data = array(
//                'type' => 1,
//                'msg' => '登陆成功',
//                'userid' => $user['id'],
//                'username' => $user['username'],
//                'token' => md5($user['id'] . time() . md5($salt))
//            );
//            $this->ajaxReturn($data,'JSON');
//        } else {
//            $this->ajaxError('登录失败');
//        }
//    }

    //注册用户
//    public function register($username, $moble, $password, $areanum)
//    {
//        if (!check($moble, 'moble')) {
//            $this->ajaxError('手机号格式错误');
//        }
//
//        if (!check($password, 'password')) {
//            $this->ajaxError('登录密码格式错误');
//        }
//
//        if (M('User')->where(array(
//            'moble' => $moble
//        ))->find()
//        ) {
//            $this->ajaxError('手机号已存在');
//        }
//
//        $mo = M();
//        $mo->execute('set autocommit=0');
//        $mo->execute('lock tables trade_user write , trade_user_coin write , trade_user_credit write');
//        $rs = array();
//        $rs[] = $mo->table('trade_user')->add(array(
//            'username' => $username,
//            'moble' => $moble,
//            'mobletime' => time(),
//            'password' => md5($password),
//            'tpwdsetting' => 1,
//            'addip' => get_client_ip(),
//            'addr' => get_city_ip(),
//            'addtime' => time(),
//            'status' => 1,
//            'areanum' => $areanum,
//        ));
//
//        $rs[] = $mo->table('trade_user_coin')->add(array(
//            'userid' => $rs[0]
//        ));
//
//        $rs[] = $mo->table('trade_user_credit')->add(array(
//            'userid' => $rs[0]
//        ));
//
//        if (check_arr($rs)) {
//            $mo->execute('commit');
//            $mo->execute('unlock tables');
//            session('reguserId', $rs[0]);
//            session('userId', $rs[0]);
//            session('userName', $username);
//            $this->ajaxSuccess('注册成功!');
//        } else {
//            $mo->execute('rollback');
//            $this->ajaxError('注册失败');
//        }
//    }


}